#ifndef EMPLOYEES_H
#define EMPLOYEES_H

#include "Date.h"

class Employee
{
	private:
        char* name;
        Date hireDate;
        char* departmentName;
        double salary;
        static unsigned empCounter;
        void allocDynamicDataName(const char* name);
        void allocDynamicDataDepartmentName(const char* departmentName);
        void removeDynamicDataName();
        void removeDynamicDataDepartmentName();
	public:
        Employee() : hireDate()
        {
            empCounter++;
        }
        Employee(const char*, const Date, const char*, const double);
        Employee(const Employee&);
        Employee& operator = (const Employee&);
        ~Employee();
        void setEmployeeName(const char*);
        void setEmployeeHireDate(const unsigned, const unsigned, const unsigned);
        void setEmployeeDepartmentName(const char*);
        void setEmployeeSalary(const double);
        char* getEmployeeName() const;
        Date getEmployeeHireDate() const;
        char* getEmployeeDepartmentName() const;
        double getEmployeeSalary() const;
        void printEmployee() const;
        static void printCounter();

};


#endif